#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
  // x  y  (1, 0)
  // fx, fy -> (x, y, (1, 0))
  int n, k, T;
  cin >> n >> k >> T;
  using TIIB = tuple<int, int, bool>;
  vector<tuple<int, int, bool>> points(n);
  for (auto &[x, y, _] : points) cin >> x >> y;
  while (k--) {
    int sx, sy;
    cin >> sx >> sy;
    for (auto &[x, y, withS] : points) {
      if (x == sx && y == sy) {
        withS = true;
        break;
      }
    }
  }
  int cnt = 0;
  while (T--) {
    int fx, fy;
    cin >> fx >> fy;

    cnt += get<2>(*max_element(points.begin(), points.end(), [&](TIIB &a, TIIB &b) {
      auto &[ax, ay, _] = a;
      auto &[bx, by, __] = b;
      int dista = (ax - fx) * (ax - fx) + (ay - fy) * (ay - fy);
      int distb = (bx - fx) * (bx - fx) + (by - fy) * (by - fy);
      return dista < distb;
    }));
    // int maxDist = 0;
    // bool withSurvivor = false;
    // for (auto &[x, y, withS] : points) {
    //   int dist = (x - fx) * (x - fx) + (y - fy) * (y - fy);
    //   if (dist > maxDist) {
    //     maxDist = dist;
    //     withSurvivor = withS;
    //   }
    // }
    // cnt += withSurvivor;
  }
  cout << cnt << endl;
}